Interactive electronic television program guide with database configurability

ABSTRACT

An interactive television program guide system is provided in which an interactive television program guide is implemented on user television equipment containing a memory. The system allocates the memory among different categories of program guide data used by the program guide. When new channels are added to the channel line-up, the program guide adjusts its memory allocation accordingly. When it is desired to install a new non-program-guide application on the user television equipment in addition to the program guide, memory can be reallocated to accommodate the new application.

This application claims the benefit of U.S. provisional application No.60/063,988, filed Nov. 6, 1997.

BACKGROUND OF THE INVENTION

This invention relates to television systems, and more particularly, tothe use of memory in interactive television program guide systems.

Cable, satellite, and broadcast television systems provide viewers witha large number of television channels. Viewers have traditionallyconsulted printed television program schedules to determine the programsbeing broadcast at a particular time. More recently, interactiveelectronic television program guides have been developed that allowtelevision program information to be displayed on a viewer's television.

Interactive television program guides, which control user-interfacefunctions, i.e. channel selection or interactive program inspection, aretypically implemented on set-top boxes. Although set-top boxes are oftenprovided to subscribers with only the program guide applicationinstalled and a certain number of pre-determined channels, cable systemoperators often would like to have the capability to add more channelsto their cable television channel line-up. Cable system operators mayalso want to install additional applications in the set-top boxes intheir system when such features become available. For example, operatorsmight wish to add application software to the set-top boxes to support ahome shopping service, a home banking service, an Internet accessservice, or some other such service.

However, the amount of memory available in a set-top box is limited.Because the amount of memory required by a conventional program guide isfixed, it may not be possible to install new application software in aset-top box if the program guide application has already been installed.An example of an electronic program guide with a memory size that isfixed is shown in Lazarus U.S. Pat. No. 5,652,613. Although it might bepossible to reserve the needed memory capacity for the futureinstallation of new applications by initially using a program guide witha fairly small memory requirement, such a reduced-size program guidewould generally not be able to provide the same level of functionalityas a full-sized program guide.

It is therefore an object of the present invention to provide a systemin which the memory requirements of a program guide may be adjusted whenit is desired to install additional applications.

It is a further object of the present invention to provide a system inwhich the memory requirements of a program guide may be adjusted toaccommodate the addition of new channels to the existing channelline-up.

SUMMARY OF THE INVENTION

These and other objects of the invention are accomplished in accordancewith the principles of the present invention by providing an interactiveelectronic television program guide system in which a set-top box orcomparable user television equipment on which a program guide isimplemented has a configurable database of program guide data. A set-topbox or comparable user television equipment stores various categories oftelevision program guide data in the configurable database and maintainsa database configuration record. The database configuration recordallocates memory usage among the categories of program guide data.

The database configuration record may be based on a look-up tablearrangement that contains information on the preferred memory allocationto be used when various amounts of memory are available. If it isdesired to change the amount of memory used by the program guide due tothe installation of new applications, the database configuration recordmay be used by the program guide to reallocate the memory in the set-topbox.

The database configuration record may be provided to the set-top boxusing a number of different techniques. For example, the databaseconfiguration record may be provided from the same source used toprovide the program guide data. If desired, the database configurationrecord may be provided at the cable system headend. The record may beaddressed to all set-top boxes controlled by a particular cable systemoperator, all set-top boxes in a given cable system, an individualset-top box, or other suitable grouping.

An aspect of the invention relates to the use of various levels of datastorage. For each level of storage, the database configuration recordmay specify a desired number of hours of television program listingsdata to store for each category of programming, as well as a desirednumber of hours of descriptions. There may be a default databaseconfiguration record for each version of the program guide, for eachspecific type of set-top box hardware, and for each memory configurationcorresponding to a specific type of set-top box hardware.

The television program guide data preferably may be divided intocategories such as pay-per-view special events, pay-per-view movies,programming on premium channels, all other movies, all other sportingevents, and all other series. Each data storage level specifies how theprogram guide is to allocate individual portions of memory for thelistings and descriptions corresponding to different categories ofprogramming.

For example, a first level (level one) in the database configurationrecord might indicate that the program guide should store 30 days ofprogram listings data and program descriptions data for pay-per-viewevents, seven days of program listings data and five days of programdescriptions data for pay-per-view movies, seven days of programlistings data and 12 hours of program descriptions data for programmingon premium channels, etc. For level two, which requires less memory beused by the program guide database, the database configuration recordmay decrease the amount of program listings data and programdescriptions data that is to be retained by the program guide forcertain categories.

In response to the introduction of a new application to the set-top box,a new database configuration record may be required. When a new databaseconfiguration record is received by the set-top box, it informs theprogram guide how it may use to store the program guide data. Theprogram guide then purges any programming data that is not within itsstorage levels as specified by the new database configuration record.New incoming television programming data is also controlled by the datastorage level. When the program guide receives new programming data, theprogram guide checks the current level of the database configurationrecord. If the new data fits in memory using the current definition ofthe data storage level in the database configuration record, i.e.,information about listings and descriptions of pay-per-view eventswithin 30 days as described above for level one, the program guidestores the data. If the data extends beyond that definition, e.g., thedata contains information about listings and descriptions ofpay-per-view events that are 32 days into the future, the extra datawill be discarded.

When the program guide determines that, for the present storage level,sufficient memory no longer exists (e.g., because new channels wereadded to the cable television line-up or a new non-program-guideapplication was added to the set-top box memory), the program guidedeletes all unnecessary data and changes to a program listings level anda program descriptions level that requires less memory and provides lessprogramming data. The program guide can become aware of this shortage ofmemory in two different ways: 1) the installation of new channels in theline-up may alert the program guide that its available memory has beenreduced or 2) as mentioned above, a new database configuration recordmay be sent from the cable operator to the program guide to inform theprogram guide of a new application that will be installed in the memory.

When the program guide determines that additional memory is available,for example due to the removal of an application from the set-top box orthe removal of channels from the television channel line-up, the programguide changes to a program listings level and a program descriptionslevel which uses more memory for the program guide database and cantherefore provide more complete programming information to the user ofthe program guide.

The database configuration record may also be used to specify a defaultstartup level. The default startup level ensures that whenever theset-top box is turned on after a power interruption, the program guidestarts at a lower level of storage and gradually increases to thepredetermined maximum program listings level and maximum programdescriptions level for the program guide.

The database configuration record may be stored in nonvolatile memory inthe set-top box, so that the program guide continues to allocate memoryproperly after a power loss. Data such as program listings data andprogram descriptions data may be stored in volatile memory andreacquired after a power loss.

Further features of the invention, its nature and various advantageswill be more apparent from the accompanying drawings and the followingdetailed description of the preferred embodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic diagram of a known interactive television programguide system.

FIG. 2 is a schematic diagram of a known interactive television programguide system according to the present invention.

FIG. 3 is a schematic diagram of a system in accordance with the presentinvention.

FIG. 4 is a schematic diagram of illustrative user equipment inaccordance with the present invention.

FIG. 5 is a schematic diagram showing two illustrative types of userequipment in accordance with the present invention.

FIG. 6 is a schematic diagram of an illustrative set-top box arrangementin accordance with the present invention.

FIG. 7 is a schematic diagram of an illustrative memory arrangement fora set-top box in accordance with the present invention.

FIG. 8 is a table showing illustrative program listings levels inaccordance with the present invention.

FIG. 9 is a table showing illustrative program descriptions levels inaccordance with the present invention.

FIG. 10 is a schematic diagram of an illustrative database configurationrecord in accordance with the present invention.

FIG. 11 is a flow chart showing steps involved in introducing a newapplication to a set-top box in accordance with the present invention.

FIG. 12 is a flow chart showing steps involved in reconfiguring thememory in accordance with the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

In known television program guide applications, the amount of memoryreserved for program guide data is fixed. An example of such a system isshown in FIG. 1. In FIG. 2, an interactive television program guideapplication having a variable amount of memory for program guide dataaccording to the principles of invention is shown at step 2. Thevariability of the amount of memory permits the interactive televisionprogram guide to accommodate new applications (or new channel data, seeFIG. 12) as necessary. Step 4 illustrates an example of the interactivetelevision program guide adjusting to accommodate a new application.Step 6 shows the interactive television program guide allocating areduced amount of memory for program guide data while simultaneouslyallocating a portion of the memory for a new application.

An illustrative arrangement for an interactive electronic televisionprogram guide system 10 in accordance with the present invention isshown in FIG. 3. Main facility 12 provides data from data source 14 todistribution facility 16 via communications link 18. Link 18 may be asatellite link, a telephone network link, a cable or fiber optic link, amicrowave link, a combination of such links, or any other suitablecommunications path. If it is desired to transmit video signals overlink 18 in addition to data signals, a relatively high bandwidth linksuch as a satellite link may generally be preferred to a relatively lowbandwidth link such as a telephone line. Distribution facility 16 may bea cable system headend, a broadcast distribution facility, or asatellite television distribution facility.

The program guide data transmitted by main facility 12 to distributionfacility 16 includes television program listings data (e.g., programtimes, channels, titles), program descriptions data and data for otherprogram guide services, and may include data for additional services. Ifdesired, some data may be provided using data sources at facilitiesother than main facility 12.

Distribution facility 16 distributes the program guide data and data forother services to multiple users via communications paths 20. Each userhas user equipment 22 for displaying television programs, televisionprogram listings, program descriptions, and information for otherservices using an interactive television program guide. Many features ofthe interactive television program guide are provided by executinginstructions with a microprocessor or similar control circuitry 54 (FIG.6) within user equipment 22. Communications paths 20 preferably havesufficient bandwidth to allow distribution facility 16 to distributetelevision programming and other video information to user equipment 22.Television programming and video information may also be distributed bydistribution facility 16 over communications paths separate fromcommunications paths 20.

Certain program guide functions may require user equipment 22 totransmit data to distribution facility 16 over communications paths 20(e.g., with a cable modem, telephone modem, or other suitable returnlink). If desired, return data may be transmitted over separatecommunications paths (not shown).

An illustrative arrangement for user equipment 22 is shown in FIG. 4.The program guide may be implemented on set-top box 28. The programguide coordinates the display of television programs and televisionprogram listings information on television 36. If desired, usertelevision equipment 22 may include a videocassette recorder controlledby the program guide on set-top box 28 for recording selected programs.

Periodically, user equipment 22 of FIG. 4 receives televisionprogramming, video information, television program listings information,and other data from television distribution facility 16 of FIG. 3 (orfrom a separate data stream) at input 26. Information from the user maybe transmitted to distribution facility 16 of FIG. 3 via output 27.During normal television viewing, the user tunes set-top box 28 to adesired television channel. Remote control 40 or some other suitableuser input device such as a mouse, infrared keyboard, touch pad, voicerecognition system, etc. may be used for interacting with the programguide and controlling set-top box 28 and television 36.

The television program guide implemented on set-top box 28 may bedownloaded from television distribution facility 16 via communicationspaths 20. If desired, different versions of the program guide (shown asinteractive television program guide application 60 in FIG. 7) may betransmitted to individually addressable set-top boxes, such as set-topboxes of different types, 23 and 24 of FIG. 5.

The circuitry of set-top box 28 of FIG. 4 is shown in more detail inFIG. 6. As shown in FIG. 6, set-top box 28 contains memory 50 for datastorage and control circuitry 54 (which is preferablymicroprocessor-based) for performing the various program guide and otherset-top box functions. These functions include responding to userinstructions sent via remote control 40 (FIG. 4) and responding toinstructions sent by distribution facility 16 (FIG. 3) (e.g., when a newchannel line-up is sent by distribution facility 16).

FIG. 5 shows an illustrative configuration of memory 50 in set-top box28. Memory 50 contains program guide application 60, which includes adatabase configuration record 62 for allocating television program guidedata 67 for various categories of listings information, such astelevision programming data 68 for category A of programming andtelevision programming data 69 for category B of programming. CategoriesA and B and other such categories include special events, pay-per-viewmovies, sporting events, non-pay-per-view movies, or regular programs.

Additional applications 61 (e.g., an Internet browser, a shoppingapplication, etc.) may also be contained in memory if desired. Databaseconfiguration record 62 is preferably stored in nonvolatile memory(e.g., rewritable flash memory) as indicated by dotted line 63. Thisensures that program guide 60 allocates memory properly after a powerloss, because memory allocation information in the nonvolatile databaseconfiguration record 62 will not be lost. Television program guide data67 may be stored in volatile memory (e.g., random access memory), asindicated by dotted line 65. Television program guide data 67 may bereacquired after a power loss, because television program guide data 67is periodically transmitted to set-top box 28 from televisiondistribution facility 16 (FIG. 3).

Database configuration record 62 uses program listings look-up table 64and program descriptions look-up table 66 as guides when allocatingmemory between different types of television program guide data 67. Whenit is desired to download a new version of the database configurationrecord 62 to set-top boxes 28, e.g., to make more memory available toaccommodate a new application, program guide GO preferably accesses thenewly introduced database configuration record 62 to determine which ofthe program listings levels 86 of program listings look-up table 80 ofFIG. 6 and program descriptions levels 96 of program descriptionslook-up table 90 of FIG. 7 coincides with the amount of memory it isdesired to use for the program guide application (which relates directlyto the amount of memory that will be made available for the newapplication).

However, when the configuration of the memory is changed, i.e., newchannels are introduced into the cable television line-up or thedescriptions of programming are modified (e.g., to change the size ofindividual descriptions, or to include pictures as part of thedescriptions), a new database configuration record is preferably notrequired (see. FIG. 12). Rather, program guide data for a new memoryconfiguration is transmitted to the program guide without a new databaseconfiguration record, as shown in box 202. The program guide receivesthe program guide data for the new memory configuration, as shown in box204. Thereafter, as shown in box 206, the program guide reconfigures thedatabase by checking the database configuration record for the levelscorresponding to the new memory configuration and calculates the programlistings level 86 and program descriptions level 96 accordingly toaccommodate the new memory configuration.

Program listings table 80 of FIG. 8 and program descriptions table 90 ofFIG. 9 show how much data is stored in memory for each category of dataand for each level of memory usage. The program guide memory allocationscheme that uses the most memory for the program guide applicationcorresponds to level zero. The program guide memory allocation schemethat uses the least memory for the program guide application correspondsto level 14. At the highest level of program guide memory usage (levelzero), listings and descriptions data for special events is availablefor 30 days into the future. Data for pay-per-view movies, sportingevents, non-pay-per-view movies, and regular programs is available for 7days into the future. The 30 day entry in the level zero “any program”category in table 80 of FIG. 6 and table 90 of FIG. 7 indicates that anyprogram that is more than thirty days into the future should bediscarded. The highest level of program guide memory usage is suitablefor arrangements in which the program guide application is the onlyapplication loaded into set-top boxes 28 and a minimum number ofchannels is being supported.

Whenever it is desired to remove an application other than program guideapplication 60 from set-top box 28 (FIG. 4), program guide application60 may not require a new database configuration record 62. If, however,the increase in memory availability is substantial, a new databaseconfiguration record 62 may be sent from television distributionfacility 16 (FIG. 3) to establish a higher level of memory usage forlistings and descriptions data. This allows the user access to moreprogram listings and descriptions information when using program guide60.

Whenever it is desired to add an application to set-top boxes 28,database configuration record 62 may be reconfigured at televisiondistribution facility 16 (FIG. 3) and retransmitted to set-top boxes 28.Program listings level 86 may then changed to establish a lower level ofmemory usage for program guide application 60. Similarly, programdescriptions level. 96 may then be changed to establish a lower level ofmemory usage for program guide application 60. This reduces the memoryrequired by program guide application 60 for storing program listingsand program descriptions in its database, thereby making more memoryavailable for non-guide applications.

If desired, database configuration record 62 may specify a defaultstartup level X for program listings 70 and a default startup level Yfor program descriptions 72, as shown in FIG. 10 and as indicated byarrows next to the tables of FIGS. 8 and 9. Default startup levels 70and 72 ensure that when memory 50 in set-top box 28 is initially used tostore program guide application 60, the memory is not fragmented byover-allocation of memory followed by truncation to fit a morerestrictive storage level. Using default startup levels 70 and 72, datacollection may start at a level that requires a relatively small amountof memory. An illustrative set of default startup levels for a systemwith an available storage capacity of 750 kilobytes is level zero inFIG. 8 for program listings and level six for descriptions in FIG. 9 forprogram descriptions, as indicated by the arrows 82 and 92 in FIGS. 8and 9, respectively.

Once the startup routine has been successfully completed, program guideapplication 60 uses the maximum level of memory allocated to it bydatabase configuration record 62. This memory allocation occurs as newlistings and descriptions data is gradually introduced into memory. Theinitial reduced-allocation approach distributes memory more efficientlyon startup of the program guide than allowing program guide application60 to randomly choose levels on startup or to choose the highest levelsavailable.

One suitable approach for adjusting the memory configuration of set-topboxes 28 by changing the amount of memory used by program guideapplication 60 is illustrated in the flow chart in FIG. 11. The flowchart of FIG. 11 shows how memory can be reallocated to accommodate anew application in set-top box 28 such as a shopping application or anInternet browser application. Because the new application must use someof the limited memory available in set-top box 28, the size of the newapplication affects the memory that is available in set-top box 28 forprogram guide application 60. Once the amount of memory needed to runthe new application is determined at step 102, a suitable programrunning at television distribution facility 16 (FIG. 3) is used todetermine the amount of memory that will be available for program guidedata 67 in set-top box 28 after the new application is installed (step104). At step 106, the suitable program uses program listings look-uptable 80 and program descriptions look-up table 90 to calculate asuitable new program listings level and new program description level toaccommodate the new application. The suitable program then changeseither the program listings level or the program descriptions level (orboth) (step 106). This step 106 may require a new database configurationrecord 62. The new database configuration record is preferablydownloaded first, to structure the memory of the program guide 60. Thenew application may then be downloaded from television distributionfacility 16 into set-top boxes 28 at step 108.

One skilled in the art will appreciate that the present invention can bepracticed by other than the described embodiments, which are presentedfor purposes of illustration and not of limitation, and the presentinvention is limited only by the claims which follow.

1-72. (canceled)
 73. A method for controlling memory allocation in auser media device, the method comprising: transmitting, from a remoteserver to the user media device, a first instruction to allocate a firstamount of memory to storing media data; determining whether additionalmemory space is available on the user media device; and in response todetermining that additional memory space is available, transmitting,from the remote server to the user media device, a second instruction toallocate a second amount of memory to storing media data, wherein theuser media device increases an allocation of memory space for storingmedia data based on the second instruction.
 74. The method of claim 73further comprising: in response to determining that insufficientadditional memory space is available, transmitting, from the remoteserver to the user media device, a third instruction to free up additionmemory space.
 75. The method of claim 73 further comprising: in responseto determining that insufficient additional memory space is available,transmitting, from the remote server to the user media device, a thirdinstruction to decrease the first amount of memory allocated to storingmedia data.
 76. The method of claim 73, wherein the media data includesprogram information for a plurality of media sources, and whereindetermining that additional memory space is available comprisesdetermining that at least one media source in the plurality of mediasources has been eliminated.
 77. The method of claim 73, whereindetermining that additional memory space is available comprisesdetermining that an application has been or will be removed from theuser media device.
 78. The method of claim 73, wherein determining thatadditional memory space is available comprises determining that a levelof media data storage has been modified on the user media device. 79.The method of claim 73 further comprising in response to determiningthat additional memory space is available on the user media device,transmitting to the remote server information on the amount ofadditional memory space available on the user device.
 80. The method ofclaim 73 further comprising transmitting from the user media device tothe remote server, an indication that the second amount of memory hasbeen allocated for storing media data.
 81. The method of claim 73,wherein the media data includes program information for a plurality ofprograms, the method further comprising prioritizing the storage ofmedia data based on a respective category of programming associated witheach of the plurality of programs.
 82. The method of claim 73 furthercomprising transmitting, from the remote server to the user mediadevice, a third instruction to decrease the first amount of memoryallocated to storing media data to accommodate installation of a newapplication on the user media device.
 83. A system for controllingmemory allocation in a user media device, the system comprising: amemory configured to store media data; and control circuitry configuredto: receive, from a remote server, a first instruction to allocate afirst amount of memory to storing media data; allocate the first amountof memory to storing media data based on the first instruction; inresponse to the remote server determining that additional memory spaceis available on the user media device, receive from the remote server, asecond instruction to allocate a second amount of memory to storingmedia data; and increase the allocation of memory space for storingmedia data based on the second instruction.
 84. The system of claim 83,wherein the control circuitry is further configured to: receive, fromthe remote server, a third instruction to free up addition memory spacein response to the remote server determining that insufficientadditional memory space is available; and increase the allocation ofmemory space for storing media data based on the third instruction. 85.The system of claim 83, wherein the control circuitry is furtherconfigured to: receive, from the remote server, a third instruction todecrease the first amount of memory allocated to storing media data inresponse to the remote server determining that insufficient additionalmemory space is available; and decrease the allocation of memory spacefor storing media data based on the third instruction.
 86. The system ofclaim 83, wherein the media data includes program information for aplurality of media sources, and wherein the remote server is configuredto determine that additional memory space is available by determiningthat at least one media source in the plurality of media sources hasbeen eliminated.
 87. The system of claim 83, wherein the remote serveris configured to determine that additional memory space is available bydetermining that an application has been or will be removed from theuser media device.
 88. The system of claim 83, wherein the remote serveris configured to determine that additional memory space is available bydetermining that a level of media data storage has been modified on theuser media device.
 89. The system of claim 83, wherein the controlcircuitry if further configured to transmit to the remote serverinformation on the amount of additional memory space available on theuser device.
 90. The system of claim 83, wherein the control circuitryis further configured to transmit to the remote server an indicationthat the second amount of memory has been allocated for storing mediadata.
 91. The system of claim 83, wherein the media data includesprogram information for a plurality of programs, the control circuitryfurther configured to prioritize the storage of media data based on arespective category of programming associated with each of the pluralityof programs.
 92. The system of claim 83, wherein the control circuitryis further configured to: receive, from the remote server, a thirdinstruction to decrease the first amount of memory allocated to storingmedia data to accommodate installation of a new application on the usermedia device; and decrease the allocation of memory space for storingmedia data based on the third instruction.